sealed class Base
sealed class Intermediate : Base()
class Impl1 : Intermediate()
class Impl2 : Intermediate()